Predicated Collection তৈরি

Java Technologies - অ্যাপাচি কমন্স কালেকশনস (Apache Common Collection) Functors এবং Predicates এর উন্নত ব্যবহার |
124
124

Apache Commons Collections লাইব্রেরি Predicated Collection তৈরি করার জন্য একটি শক্তিশালী ইউটিলিটি সরবরাহ করে, যা predicate-based filtering প্রক্রিয়া ব্যবহার করে। Predicate হল একটি শর্ত যা true অথবা false রিটার্ন করে এবং Predicated Collection হলো একটি কালেকশন যা শুধুমাত্র সেই উপাদানগুলো ধারণ করে যা predicate শর্ত পূর্ণ করে।

এটি Collections-এ উপাদানগুলোর উপর filtering করতে সাহায্য করে, যা সাধারণভাবে validation বা condition-based inclusion হিসাবে ব্যবহৃত হয়।

1. Predicate কী?

Predicate একটি ফাংশনাল কনসেপ্ট যা একটি ইনপুট নেয় এবং boolean রিটার্ন করে, যা সাধারণত কোনো শর্ত পরীক্ষা করার জন্য ব্যবহৃত হয়। যেমন, একটি মান পরীক্ষা করা যে তা নির্দিষ্ট একটি সীমার মধ্যে আছে কিনা অথবা কোনো অবস্থা পূর্ণ করছে কিনা।

এটি Apache Commons CollectionsPredicate ইন্টারফেস হিসেবে বাস্তবায়িত, এবং এখানে বিভিন্ন predicate তৈরি করা এবং কালেকশনগুলিতে predicate-based filtering প্রয়োগ করা যায়।

2. Predicated Collection তৈরি করা

Predicated Collection হল এমন একটি Collection (যেমন List, Set ইত্যাদি) যা predicate এর মাধ্যমে ফিল্টার করা হয়। এটি একটি Predicate ফাংশন ব্যবহার করে উপাদানগুলোকে যাচাই করে, এবং শুধুমাত্র সেই উপাদানগুলো সংগ্রহে থাকে যা শর্ত পূর্ণ করে।

2.1 Predicated Collection তৈরি করার উদাহরণ

Apache Commons Collections লাইব্রেরিতে PredicatedCollection ক্লাসটি ব্যবহৃত হয় predicate তৈরি করে এবং নির্দিষ্ট শর্ত অনুযায়ী কালেকশনের উপাদান ফিল্টার করার জন্য।

import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.Predicate;
import org.apache.commons.collections4.collection.PredicatedCollection;

import java.util.ArrayList;
import java.util.List;

public class PredicatedCollectionExample {
    public static void main(String[] args) {
        // একটি List তৈরি করা
        List<String> list = new ArrayList<>();
        list.add("apple");
        list.add("banana");
        list.add("cherry");
        list.add("orange");

        // Predicate তৈরি করা (যেখানে উপাদানটি 'a' দিয়ে শুরু হতে হবে)
        Predicate<String> startsWithAPredicate = new Predicate<String>() {
            @Override
            public boolean evaluate(String input) {
                return input.startsWith("a");
            }
        };

        // PredicatedCollection তৈরি করা
        PredicatedCollection<String> predicatedCollection = new PredicatedCollection<>(list, startsWithAPredicate);

        // PredicatedCollection এর উপাদান ফিল্টার করা
        System.out.println("Filtered Collection: " + predicatedCollection);
    }
}

আউটপুট:

Filtered Collection: [apple]

এখানে:

  • একটি Predicate তৈরি করা হয়েছে যা যাচাই করে, কোন স্ট্রিংটি "a" দিয়ে শুরু হয় কি না।
  • PredicatedCollection তৈরি করে list এর উপাদানগুলির মধ্যে শুধুমাত্র সেই উপাদানটি রাখা হয়েছে যেটি startsWith("a") শর্ত পূর্ণ করে।
  • ফলস্বরূপ, "apple" মাত্ৰ একটি উপাদান হিসেবে রয়ে গেছে, কারণ তা "a" দিয়ে শুরু হয়।

2.2 Predicated Collection এ Multiple Predicate ব্যবহার

আপনি একাধিক predicate শর্ত ব্যবহার করে Predicated Collection তৈরি করতে পারেন। এই ক্ষেত্রে, আপনি একটি and বা or শর্তে predicates যোগ করতে পারেন।

import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.Predicate;
import org.apache.commons.collections4.collection.PredicatedCollection;
import org.apache.commons.collections4.functors.AllPredicate;
import org.apache.commons.collections4.functors.NotPredicate;

import java.util.ArrayList;
import java.util.List;

public class PredicatedCollectionExample {
    public static void main(String[] args) {
        // একটি List তৈরি করা
        List<String> list = new ArrayList<>();
        list.add("apple");
        list.add("banana");
        list.add("cherry");
        list.add("orange");

        // Predicate তৈরি করা (যেখানে উপাদানটি 'a' দিয়ে শুরু হতে হবে এবং 5 অক্ষরের কম হবে)
        Predicate<String> startsWithAPredicate = new Predicate<String>() {
            @Override
            public boolean evaluate(String input) {
                return input.startsWith("a");
            }
        };

        Predicate<String> lengthPredicate = new Predicate<String>() {
            @Override
            public boolean evaluate(String input) {
                return input.length() < 6;
            }
        };

        // Multiple predicates কে AllPredicate তে সংযুক্ত করা
        Predicate<String> combinedPredicate = new AllPredicate<>(startsWithAPredicate, lengthPredicate);

        // PredicatedCollection তৈরি করা
        PredicatedCollection<String> predicatedCollection = new PredicatedCollection<>(list, combinedPredicate);

        // PredicatedCollection এর উপাদান ফিল্টার করা
        System.out.println("Filtered Collection: " + predicatedCollection);
    }
}

আউটপুট:

Filtered Collection: [apple]

এখানে:

  • আমরা দুটি predicate যুক্ত করেছি:
    • প্রথমটি চেক করে যে উপাদানটি "a" দিয়ে শুরু হচ্ছে কি না।
    • দ্বিতীয়টি চেক করে যে উপাদানটির দৈর্ঘ্য ৫ অক্ষরের কম কি না।
  • AllPredicate ব্যবহার করে দুটি predicate একসাথে and শর্তে সংযুক্ত করেছি। এর ফলে শুধুমাত্র "apple" উপাদানটি শর্ত পূর্ণ করেছে, কারণ এটি "a" দিয়ে শুরু হয় এবং এর দৈর্ঘ্য ৫ অক্ষরের কম।

3. CollectionUtils দিয়ে Predicated Collection তৈরি

Apache Commons Collections লাইব্রেরিতে CollectionUtils ক্লাস রয়েছে, যা কিছু সাহায্যকারী মেথড সরবরাহ করে, যার মধ্যে predicatedCollection একটি গুরুত্বপূর্ণ মেথড।

উদাহরণ: CollectionUtils.filter ব্যবহার করে Predicated Collection তৈরি

import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.Predicate;

import java.util.ArrayList;
import java.util.List;

public class PredicatedCollectionExample {
    public static void main(String[] args) {
        // একটি List তৈরি করা
        List<String> list = new ArrayList<>();
        list.add("apple");
        list.add("banana");
        list.add("cherry");
        list.add("orange");

        // Predicate তৈরি করা (যেখানে উপাদানটি 'b' দিয়ে শুরু হতে হবে)
        Predicate<String> startsWithB = new Predicate<String>() {
            @Override
            public boolean evaluate(String input) {
                return input.startsWith("b");
            }
        };

        // CollectionUtils.filter ব্যবহার করে Predicated Collection তৈরি
        CollectionUtils.filter(list, startsWithB);

        // Filtered collection দেখানো
        System.out.println("Filtered Collection: " + list);
    }
}

আউটপুট:

Filtered Collection: [banana]

এখানে:

  • CollectionUtils.filter ফাংশনটি ব্যবহার করে, আমরা list এ শুধুমাত্র সেই উপাদান রাখার জন্য predicate প্রয়োগ করেছি যা "b" দিয়ে শুরু হয়।
  • ফলস্বরূপ, "banana" উপাদানটি রয়ে গেছে এবং বাকি উপাদানগুলি বাদ পড়ে গেছে।

4. Predicated Collection এর ব্যবহার

  • Data Validation: আপনি ডেটার একটি কালেকশনে ফিল্টার করতে পারেন, যেমন যেগুলি নির্দিষ্ট শর্ত পূর্ণ করে।
  • Filtering Elements: কোন ডেটা কলেকশন থেকে নির্দিষ্ট শর্তের ভিত্তিতে উপাদান সরানো বা রাখা।
  • Complex Condition Application: একাধিক predicate শর্ত ব্যবহার করে complex validation করা।

সারাংশ

  • Predicated Collection Apache Commons Collections এর একটি গুরুত্বপূর্ণ ইউটিলিটি, যা predicate-based filtering এর মাধ্যমে Collection এর উপাদান ফিল্টার করতে সহায়তা করে।
  • Predicate হল এমন একটি শর্ত যা boolean রিটার্ন করে এবং এই শর্তটি PredicatedCollection এ প্রয়োগ করা হয়।
  • CollectionUtils এর মাধ্যমে আপনি filter করতে পারেন এবং predicate শর্ত প্রয়োগ করতে পারেন।
  • এটি বিশেষত ডেটা validation, filtering, বা conditional inclusion এর জন্য খুবই উপকারী।

Apache Commons Collections এর Predicated Collection ফিচারটি Java প্রোগ্রামিংয়ে কার্যকরভাবে ব্যবহৃত হতে পারে যখন আপনাকে ডেটা সিলেকশন বা ফিল্টারিং করতে হয়।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion